#pragma once
#include "d3dutil.h"
#include "Vertex.h"
#include <vector>

class NxActor;

class SkydomeParameters
{
public:

	SkydomeParameters();
	virtual ~SkydomeParameters(void);


	D3DXVECTOR4& LightDirection(){ return m_LightDirection; }
	D3DXVECTOR4& LightColor(){ return m_LightColor; }
	D3DXVECTOR4& LightColorAmbient(){ return m_LightColorAmbient; }
	float& FogDensity() { return m_FogDensity; }

	D3DXVECTOR3 InvWaveLengths() { return m_InvWaveLengths; }
	D3DXVECTOR3 WaveLengthsMie() { return m_WaveLengthsMie; }
	D3DXVECTOR3 WaveLengths(){ return m_WaveLengths; }
	void SetWaveLengths(D3DXVECTOR3 wavelength);

	int& NumSamples() { return m_NumSamples; }
	float& Exposure() { return m_Exposure; }

private:		

	void setLengths();

	D3DXVECTOR4 m_LightDirection;
	D3DXVECTOR4 m_LightColor;
	D3DXVECTOR4 m_LightColorAmbient;
	float m_FogDensity;
	D3DXVECTOR3 m_InvWaveLengths;
	D3DXVECTOR3 m_WaveLengthsMie;
	D3DXVECTOR3 m_WaveLengths;
	int m_NumSamples;
	float m_Exposure;

	
	SkydomeParameters(const SkydomeParameters& t);
	SkydomeParameters& operator=(const SkydomeParameters& t);
};
